home *** CD-ROM | disk | FTP | other *** search
/ Alles Voor Internet / Tout Pour Internet / alles voor internet.iso / MacInternet™ / Archive-tools / untar and compress Folder / compress / (compress.original) / usermem.sh < prev    next >
Linux/UNIX/POSIX Shell Script  |  1993-03-12  |  2KB  |  84 lines

  1. #! /bin/sh
  2. #
  3. #    @(#)usermem.sh 1.1 86/09/25 SMI; from UCB 5.4 85/09/17
  4. #
  5. : This shell script snoops around to find the maximum amount of available
  6. : user memory.  These variables need to be set only if there is no
  7. : /usr/adm/messages.  KMEM, UNIX, and CLICKSIZE can be set on the command
  8. : line, if desired, e.g. UNIX=/unix
  9. KMEM=/dev/kmem        # User needs read access to KMEM
  10. UNIX=
  11. # VAX            CLICKSIZE=512,    UNIX=/vmunix
  12. # PDP-11        CLICKSIZE=64,    UNIX=/unix
  13. # CADLINC 68000        CLICKSIZE=4096,    UNIX=/unix
  14. # Perkin-Elmer 3205    CLICKSIZE=4096,    UNIX=/edition7
  15. # Perkin-Elmer all others, CLICKSIZE=2048, UNIX=/edition7
  16. CLICKSIZE=512
  17. eval $*
  18.  
  19. if test -n "$UNIX"
  20. then
  21.     : User must have specified it already.
  22. elif test -r /vmunix
  23. then
  24.     UNIX=/vmunix
  25.     if [ -r /bin/sun2 ] && /bin/sun2
  26.     then
  27.         CLICKSIZE=2048    # Sun-2
  28.     elif [ -r /bin/sun3 ] && /bin/sun3
  29.     then
  30.     CLICKSIZE=8192    # Sun-3
  31.     else
  32.     CLICKSIZE=512    # Probably VAX
  33.     fi
  34. elif test -r /edition7
  35. then
  36.     UNIX=/edition7
  37.     CLICKSIZE=2048    # Perkin-Elmer: change to 4096 on a 3205
  38. elif test -r /unix
  39. then
  40.     UNIX=/unix        # Could be anything
  41. fi
  42.  
  43. SIZE=0
  44. # messages: probably the most transportable
  45. if test -r /usr/adm/messages -a -s /usr/adm/messages
  46. then
  47.     SIZE=`grep avail /usr/adm/messages | sed -n '$s/.*[     ]//p'`
  48. fi
  49.  
  50. if test 0$SIZE -le 0        # no SIZE in /usr/adm/messages
  51. then
  52.     if test -r $KMEM        # Readable KMEM
  53.     then
  54.     if test -n "$UNIX"
  55.     then
  56.         SIZE=`echo maxmem/D | adb $UNIX $KMEM | sed -n '$s/.*[     ]//p'`
  57.         if test 0$SIZE -le 0
  58.         then
  59.         SIZE=`echo physmem/D | adb $UNIX $KMEM | sed -n '$s/.*[     ]//p'`
  60.         fi
  61.         SIZE=`expr 0$SIZE '*' $CLICKSIZE`
  62.     fi
  63.     fi
  64. fi
  65.  
  66. case $UNIX in
  67.     /vmunix)        # Assume 4.2bsd: check for resource limits
  68.     MAXSIZE=`csh -c limit | awk 'BEGIN    { MAXSIZE = 1000000 }
  69. /datasize|memoryuse/ && NF == 3    { if ($2 < MAXSIZE) MAXSIZE = $2 }
  70. END    { print MAXSIZE * 1000 }'`
  71.     if test $MAXSIZE -lt $SIZE
  72.     then
  73.         SIZE=$MAXSIZE
  74.     fi
  75.     ;;
  76. esac
  77.  
  78. if test 0$SIZE -le 0
  79. then
  80.     echo 0;exit 1
  81. else
  82.     echo $SIZE
  83. fi
  84.